#include"TcpServe.hpp"
#include"Socket.hpp"
#include"Protocol.hpp"
#include"ServerCal.hpp"
using namespace std;
void Usage(string proc)
{
    std::cout << "\nUsage: " << proc << " port\n" << std::endl; 
}
int main(int argc,char *argv[])
{
    if(argc!=2)
    {
        Usage(argv[0]);
        exit(0);
    }
    uint16_t port=stoi(argv[1]);
    ServerCal cal;
    TcpServe *rq=new TcpServe(port,std::bind(&ServerCal::cal,&cal,std::placeholders::_1));
    rq->Init();
    rq->Start();
    //测试序列反序列化，加减报头
    // request test(123,456,'+');
    // string s;
    // test.Serialize(s);
    // cout<<s<<endl;
    // s=Encode(s);
    // cout<<s<<endl;
    // string s2;
    // bool r=Decode(s,s2);
    // cout<<s2<<endl;
    // test.DSerialize(s2);
    // cout<<test.x<<endl;
    // cout<<test.op<<endl;
    // cout<<test.y<<endl;

    // response test(1000,0);
    // string s;
    // test.Serialize(s);
    // cout<<s<<endl;
    // s=Encode(s);
    // cout<<s<<endl;
    // string s2;
    // Decode(s,s2);
    // cout<<s2<<endl;
    // test.DSerialize(s2);
    // cout<<test.result<<endl;
    // cout<<test.code<<endl;
    return 0;
}